package com.ruoyi.performance.mapper;

import com.ruoyi.performance.domain.PerfCheckresult;
import com.ruoyi.performance.domain.PerfLevelTemplate;
import com.ruoyi.performance.dto.PerfLevelTemplateDto;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author YL
 * @date 2020-07-22
 * @description 绩效等级模板明细Mapper接口
 */
@Mapper
public interface PerfLevelTemplateMapper {
    /**
     * 根据id查找绩效等级模板
     *
     * @param id 绩效模板id
     * @return 绩效等级模板明细
     */
    PerfLevelTemplateDto selectPerfLevelTemplateById(int id);
    
    /**
     * 根据id查找绩效等级模板
     *
     * @param id 绩效模板id
     * @return 绩效等级模板明细
     */
    PerfLevelTemplateDto selectPerfLevelTemplateByIdL(Long id);
    
    /**
     * 检查明细模板code是否存在，存在count = 1 则返回  true； 不存在返回flase
     * @param perfLevelTemplateDto
     * @return 存在count = 1 则返回  true
     */
    public boolean checkUnique(PerfLevelTemplate perfLevelTemplate);
    
    
    /**
     * 根据考核单code和公司查询考核单id
     * @param perfCheckresult
     * @return 考核单id
     */
    public Long selectId(PerfLevelTemplate perfLevelTemplate);

    /**
     * 根据公司代码查找绩效等级模板
     *
     * @param companyCode 公司代码
     * @return 绩效等级模板明细
     */
    List<PerfLevelTemplateDto> selectPerfLevelTemplateByCompanyCode(String companyCode);

    /**
     * 查询绩效等级模板明细列表
     * @param perfLevelTemplateDto 绩效等级模板明细
     * @return 绩效等级模板明细集合
     */
    List<PerfLevelTemplateDto> selectPerfLevelTemplateList(PerfLevelTemplateDto perfLevelTemplateDto);

    /**
     * 新增绩效等级模板明细
     *
     * @param perfLevelTemplate 绩效等级模板明细
     * @return 结果
     */
    int insertPerfLevelTemplate(PerfLevelTemplate perfLevelTemplate);

    /**
     * 修改绩效等级模板明细
     *
     * @param perfLevelTemplate 绩效等级模板明细
     * @return 结果
     */
    int updatePerfLevelTemplate(PerfLevelTemplate perfLevelTemplate);

    /**
     * 删除绩效等级模板明细
     * @param id 模板id
     * @return 结果
     */
    int deletePerfLevelTemplateById(Long id);

}
